The subject system and method are generally directed to providing lateral communication between interfaces of a system. The subject system and method generally provide for lateral tunneling and/or bridging between two disparate protocol interface devices in an electronic system, such electronic system may be embodied as a system-on-chip (SOC) integrated circuit. The subject system and method also generally provide for a direct connection between two communication interfaces within an electronic system such that the data of one interface may be intercepted and directly injected into the other's processing paths autonomously without need for involving resources such as the processor or main memory, which includes on-chip resources in the case of an SOC.
Applications of electronic systems such as wireless base stations, server farms, input/output (I/O) virtualization for blade servers, or storage I/O and memory array networking (MeMan) require transport of an I/O communication protocol from a host system such as, for example, a processor cluster, over a backplane into an endpoint/target system. Generally, a backplane protocol and a host system's input/output (I/O) protocol are incompatible.
As processing requirements continuously and exponentially increase, enterprises are starting to find the need to utilize a million computer hosts clustered together to provide concurrent execution of a single program such as the Google search query. The need for increased harmonization, virtualization, and interconnection of potentially millions of processors, computers, hosts, and servers into a single functional unit is becoming increasingly essential. Such server farms hosting potentially hundreds of thousands of servers in one location may forego with separating each server into a separate functional unit and may seek to remove extraneous items such as cases, independent power supplies, independent peripherals, and may instead seek to network or intercouple each individual server together in the most efficient manner possible.
A processor and its peripherals within a server are designed to primarily communicate internally (board-level input/output (IO)) over an internal IO interface such as PCI Express, or the like, whereas network communications between servers generally operate over a separate backplane protocol such as, for example, Gigabit Ethernet. Gigabit Ethernet is primarily used to connect separate host machines, as peers. Contrastingly, an IO protocol, like PCI Express, on the other hand generally connects peripherals, such as storage devices, and other such items to a single host (communication root). The PCI Express format has its own benefits and advantages relative to Gigabit Ethernet. Oftentimes, to get the right balance between performance, robustness, power consumption, and other such features, a system's architect seeks to create new ways of interconnecting hosts and peripherals. In some instances it may prove beneficial to provide a connection of a particular protocol virtually on top of another protocol. For example, a device utilizing PCI Express may be connected to a PCI Express IO interface which rides atop a backplane protocol (such as Gigabit Ethernet) which is connected to a server. The server is thereby provided with a virtual PCI Express interface. Such exemplary connection provides flexibility in cluster architecture by allowing for connecting a plurality of peripherals or external devices for a group of servers via a back plane protocol such as Gigabit Ethernet. As another example, it may be beneficial to network a plurality of servers together via an internal IO protocol, such as PCI Express connections.
As a specific example, a 10 Gigabit per second Ethernet link may support up to 4 PCI Express lanes of 2.5 gigabits per second throughput. Thereby, potentially four separate PCI Express peripherals such as RAID arrays, video cards, and the like may be connected or one big peripheral device such as a big RAID array or memory array network may be connected across an Ethernet link to provide storage or services for a different host.
In another example, Ethernet may be tunneled through a high-speed PCI Express fabric to provide very high performance cluster interconnect suitable for storage input/output. Thereby, large banks of storage such as a RAID array, an array of solid state disks, and the like, may be selectively utilized between a plurality of different host systems and may remain in remote locations.
Conventional attempts to address these needs are less than ideal as they either require dedicated hardware externally disposed at great cost and customized for each protocol interface device pair and/or require the full-time operation of the main processor, memory, and system bus, thereby substantially degrading performance for other intended operations.
There is therefore a need for a system and method for lateral communication between protocol interface devices.